<?php

    /**
     * Action
     *
     * A container to store url datas for an action
     *
     * @package      Core
     * @subpackage   Url
     * 
     * @license      GNU Lesser General Public Licence see LICENCE-LGPL file or http://www.gnu.org/licenses/lgpl.html
     */
    class Core_Url_Action extends Core_Url_Abstract
    {

    ////////////////////////////////////////////////////////////////////////////
	//                                Variables                               //
	////////////////////////////////////////////////////////////////////////////

		/**
		 * The request type
		 *
		 * @var string
		 */
		protected $_requestType = 'http';

	////////////////////////////////////////////////////////////////////////////
	//                            Getters / Setters                           //
	////////////////////////////////////////////////////////////////////////////

        /**
         * Returns the request type
         *
         * @return string
         */
        public function getRequestType()
        {
            return $this->_requestType;
        }

	////////////////////////////////////////////////////////////////////////////
	//                                 Methods                                //
	////////////////////////////////////////////////////////////////////////////

		/**
		 * Constructor
		 *
		 * @param       array       $params
		 * @param       string      $request
		 */
		public function __construct(array $params = array(), $request = 'http')
		{
			$this->_params		= $params;
			$this->_requestType = $request;
		}

		/**
		 * Destructor
		 */
		public function __destruct()
		{
			unset($this);
		}

		/**
		 * Gets the Core_Url object corresponding to the action
		 *
		 * @return      Core_Url
		 */
		public function toUrl()
		{
			return Core_Url::getEngine()->create($this);
		}

	////////////////////////////////////////////////////////////////////////////
	//                            Protected Methods                           //
	////////////////////////////////////////////////////////////////////////////

		/**
		 * Gets the url string corresponding to the action
		 *
		 * @param       boolean     $forxml : true if some characters should be escaped
		 * @return      string
		 */
		protected function _toString($forxml = false)
		{
			return $this->toUrl()->toString($forxml);
		}
   }
